手机QEMU实用教程 您所在的位置:网站首页 virtio e1000 rtl8139 软中断 占用区别 手机QEMU实用教程

手机QEMU实用教程

2024-06-18 05:46| 来源: 网络整理| 查看: 265

大家好啊,今天我给大家带来的是:手机QEMU实用教程!这期教程的实现原理是Termux+chroot/proot+原生QEMU(limbo emu太卡了,还容易被杀后台)

说在最前面:由于大部分手机没有KVM、且是arm模拟x86,该卡的还是卡,只是不卡的那么严重(因为没有KVM,所以运行Windows on arm照样卡,想通过同构模拟流畅的死心吧)

QEMU由于是纯命令行,所以自由度比limbo emu高得多,比如挂载多个cdrom、UEFI启动、SCSI硬盘等等等等,而且最新的limbo emu的QEMU版本太老了才5.1.0 最新QEMU版本是7.2.0 高了两个大版本。

VirtIO是一个专门针对虚拟机提供驱动程序的东西,用了它就可以大大优化体验。

效果呈现:

开始准备:

教程需要的文件:https://caiyun.139.com/m/i?135Cmqw4Gn8ai  提取码:NZq3

安装Termux和VNC Viewer

一台最好获得root权限的安卓手机(如果实在无法获得root权限,可以用vmos、光速虚拟机等)(不root也可以,只是体验没有root好,而且无法从外部访问容器文件)

一些ISO安装盘或者现成的系统镜像

安装好的proot/chroot容器(安装教程:[Termux]在安卓上运行QEMU - 哔哩哔哩 (bilibili.com))如果已经有安装好的容器跳过这步

容器安装完退出Termux(点击通知栏中的Exit才算真正退出)重进,会看到生成了容器选择菜单.sh,执行此脚本即可回到容器,容器中termux文件夹即为termux默认文件夹,在手机中的/data/data/com.termux/files/home/,需要root权限才能打开。

教程开始!

首先,进入chroot/proot容器

容器主界面

打开通知栏,点击Acquire wakelock常驻后台

通知栏

安装QEMU

在termux文件夹下创建qemu工作文件夹(termux文件夹下方便管理文件),以放置脚本、镜像等,文件夹名字随便取

将镜像/系统安装盘文件、virtio.iso、EFI文件放入刚刚创建的文件夹

1.如果你要使用ISO安装系统,现在输入

镜像大小支持的单位K、M、G

假如我要创建名为disk.qcow2大小32G的空镜像,那么输入

注:这个镜像不会一创建就占用镜像大小的空间,最开始只占用几百KB的空间,会随着往镜像里存东西而慢慢变大

2.如果你想使用现成镜像启动系统

最好转换成qcow2格式,兼容性强提高读写速度,输入

支持互转的镜像格式:qcow2、vmdk、raw

如果要使用共享文件夹的话,现在创建一个(共享文件夹内的文件名不能有中文,文件总大小不能超过503MB,文件会在退出QEMU时同步,不会实时同步)

使用vim创建sh启动脚本

接下来,就要开始写启动脚本了!

编辑界面

点击“ i ”键,进入编辑模式,输入:

机器类型,有pc和q35两个可以填,个人推荐q35。

CPU类型,以下是所有支持的选项:(第一列是架构,第二列是CPU型号,第三列是介绍)

模拟Windows的话个人推荐core2duo,其实这个区别也不大……

开启MTTCG加速

接着给虚拟机分配CPU核心,用法:

后面的threads和sockets一般不用管它,设1即可

我要分配8核,那就是

接着是内存,内存输入纯数字,单位MB,1-4GB即可(1GB=1024MB),我分配4G,也就是4096M

接着是添加UEFI启动(如果你要运行windows7及以下版本,那么不要这个)

(PS:使用此UEFI固件启动时,启动界面的windows图标会变成vmware图标)

接着是网卡,windows可用的网卡类型有rtl8139、e1000、virtio(网速:virtio>e1000>rtl8139)

qemu的网络有两种模式,一种是user,一种是tap,tap需要root权限,操作以来也很麻烦,但是可以直连物理局域网(我只会用user)

那么,我要使用user模式、virtio网卡,就是

接着是显卡,可选的显卡有:(第一列显卡型号,第二列介绍)

这里说一下,大部分版本的windows没有自动打驱动的功能,如果不打显卡驱动那么画面会很卡,而且分辨率锁定800x600看着很难受,而virtio.iso的驱动只能打virtio的显卡,所以你如果想要更流畅、高清的画面那只能选virtio显卡。命令:

接着是声卡,这个会降低虚拟机的速度,但是可以获得听觉体验。可选的声卡如下:(第一列声卡型号,第二列介绍)

我试了一下hda音质最好而且兼容性最强,ac97其次

hda声卡,命令如下:

说一下,这个声音发出来不是vnc发出来的,是容器发出来的,所以如果你远程虚拟机的话声音是不会跟着远程过去的……

然后是VNC(端口号0~65535)

然后是USB Tablet模式,可以更好控制鼠标指针

然后是共享文件夹,不想共享的就跳过:(如果设置虚拟机只读的话去掉"rw:")

首次启动不要添加此参数,否则有可能无法启动,等可以进入桌面之后再关机添加此项,共享文件夹在虚拟机内对应的磁盘为“QEMU VVFAT”

最后是挂载virtio安装盘,命令如下:

好了,基本配置已经弄完了,接着就是挂载镜像等等乱七八糟的了……

对于想使用ISO系统安装盘安装的人:

挂载系统iso,假如我要挂载system.iso作为安装盘的话,那么输入

挂载刚刚创建的镜像

2.对于想使用现成镜像启动的人

(PS:-hda的“a”是磁盘顺序,-hdb -hdc都行,最多可以挂载到-hdd)

综上所述,我要启动同一目录下名为Windows10.qcow2的镜像,UEFI启动,有声有网,VNC地址为127.0.0.1:1,共享文件夹为同目录下的ShareLib,完整启动配置应为

按两下Esc,输入:wq!,按下回车,退出编辑模式

赋予可执行权限

命令行输入 ./run.sh

如果出现这行报错,那么是vnc端口被占用,改一个数字就可以了

报错内容

这样子就启动成功啦!

但是这还没完!后面还有很长一段要走呢!我们继续吧!

打开VNC Viewer,点击右下角绿色+号

输入127.0.0.1:[端口],随便取个名

VNC界面

点击CREATE,然后点击下方的CONNECT

关闭此开关,点击OK

未加密的连接

简单说一下VNC的一些东西,双指可以缩放,两根手指同时按是右键,滑动屏幕移动鼠标,点击图钉可以隐藏工具栏,从屏幕上方下滑可以重新唤起工具栏,返回一下再按CANCEL也可以唤起

正在准备设备成功进入桌面!

接下来就是要打驱动了,首先打开此电脑确定virtio有没有被挂载上

然后我们先安装SCSI控制器,可以大幅提高磁盘读写速度,减小开机时间和反应时间,这个比较特殊,需要用替换法安装驱动

先关机,回到termux,输入命令

编辑启动脚本,添加以下参数

重新进入虚拟机,右键开始菜单,点击Device Manager(设备管理器),可以看到有一个SCSI控制器

SCSI Controller

双击它,在出现的窗口中点击Update Driver(更新驱动程序),点击第二项

安装驱动1

点击Browse(浏览),选中virtio安装盘

安装驱动2

点击OK,点击Next(下一步),等一小会

安装驱动3

出现这个对话框就表示安装完成

安装驱动4

关机,删除刚才临时创建的镜像,编辑启动配置,删除“-hda xxx.qcow2”,将刚才新写的参数中的“file=”后面的名字改为系统镜像,保存退出,重进系统。

效果

接下来安装其它驱动,这些驱动用virtio的一键安装就行了,安装程序在这里:(32位系统用下面那个virtio-win-gt-x86.msi)

驱动安装程序位置安装程序首页

这里就是傻瓜式的一路Next就行了,就不讲了

成功安装网络驱动安装完成

安装完就可以调分辨率了

分辨率调节

到此,你已经可以正常使用虚拟机了!

更高级的玩法:

如果觉得镜像大小不够用了,可以扩容

如果我要将disk.qcow2扩容10G,命令:

但是进入系统,你会发现容量并没有扩大

首先右键开始菜单,选择Disk Management(磁盘管理),可以看到有10G灰色的空间

磁盘管理

右键C盘已用空间,选择Extend Volume,会弹出一个窗口,一路下一步即可

现在已经扩容完了!

2.新建磁盘

挂载命令和前面挂载SCSI磁盘的命令一样,只要把id最后的disk0改为1,以此类推

然后进入磁盘管理,初始化为GPT或者MBR磁盘都可以,然后新建简单卷,自己摸索摸索,这里就不放图了。

本期教程到此结束!谢谢阅读



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有